package com.ourteam.scm.utils;

import java.io.File;
import java.util.Map;

public interface ISCMService {

	public void relocateResource(String from, String to, File rootDir, ModuleInfoBean moduleInfo,
			ISCMListener scmListener) throws Exception;

	public void switchTo(File rootDir, String svnUrl, ModuleInfoBean moduleInfo, ISCMListener scmListener)
			throws Exception;

	public void importResource(File rootDir, ModuleInfoBean moduleInfo, ISCMListener scmListener) throws Exception;

	public void checkoutResource(File rootDir, ModuleInfoBean moduleInfo, ISCMListener scmListener) throws Exception;

	public void commitResource(File rootDir, ModuleInfoBean moduleInfo, String comment, ISCMListener scmListener)
			throws Exception;
	
	public void commitResource(File rootDir,File[] dirs, ModuleInfoBean moduleInfo, String comment, ISCMListener scmListener)
			throws Exception;

	public void updateResource(File rootDir, ModuleInfoBean moduleInfo, ISCMListener scmListener) throws Exception;

	public void removeResource(File rootDir, File[] files, ModuleInfoBean moduleInfo, String comment,
			ISCMListener scmListener) throws Exception;

	public void updateResourceToVersion(File rootDir, File file, ResourceUpdateInfo versionInfo,
			ModuleInfoBean moduleInfo, ISCMListener scmListener) throws Exception;

	public VersionLogInformation[] showResourceLog(File rootDir, File[] files, ModuleInfoBean moduleInfo,
			ShowResourceLogConfig[] resourceLogConfigs, String startRevision, String endRevision,
			boolean showFullDetail, ISCMListener scmListener) throws Exception;

	public VersionLogInformation[] scanResourceLog(File rootDir, ModuleInfoBean moduleInfo,
			ShowResourceLogConfig[] resourceLogConfigs, String startRevision, String endRevision,
			ISCMListener scmListener) throws Exception;

	public ResourceDiffentInfomation showResourceDiffent(File rootDir, File file, String leftVersion,
			String rightVersion, ModuleInfoBean moduleInfo, ISCMListener scmListener) throws Exception;

	public Map<String, VersionInfo> getResourceVersionInfos(File rootDir,File[] files) throws Exception;

}
